package com.dragon.modules.yuegou.query.merchant;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dragon.modules.yuegou.entity.merchant.MerchantPayConfigEntity;
import com.dragon.modules.yuegou.enums.merchant.MerchantPayConfigBackType;
import com.dragon.modules.yuegou.mybatis.Condition;
import com.dragon.modules.yuegou.mybatis.Query;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商户支付配置表 动态查询条件
 * 
 * @author pbuilder generated
 * @date 2020-03-06 14:04:47
 * @version 2.0
 */
@JsonInclude(Include.NON_NULL)
public class MerchantPayConfigQuery extends MerchantPayConfigEntity implements Query<MerchantPayConfigEntity> {

    /** 商铺id查询条件 */
	@JsonUnwrapped(prefix = "id")
	private Condition<String> idCondition;

    /** 是否开启微信聚合支付 0否 1是查询条件 */
	@JsonUnwrapped(prefix = "isWxpayOpen")
	private Condition<Boolean> isWxpayOpenCondition;

    /** 微信子商户号查询条件 */
	@JsonUnwrapped(prefix = "subMchId")
	private Condition<String> subMchIdCondition;

    /** 微信支付手续费比例 比如千6 填0.006查询条件 */
	@JsonUnwrapped(prefix = "wxProportion")
	private Condition<BigDecimal> wxProportionCondition;

    /** 是否开启支付宝聚合支付查询条件 */
	@JsonUnwrapped(prefix = "isAlipayOpen")
	private Condition<Boolean> isAlipayOpenCondition;

    /** 2019112769491079查询条件 */
	@JsonUnwrapped(prefix = "aliSgyPid")
	private Condition<String> aliSgyPidCondition;

    /** 支付宝商户pid  开启支付宝支付时必传查询条件 */
	@JsonUnwrapped(prefix = "aliMerchantPid")
	private Condition<String> aliMerchantPidCondition;

    /** 商户授权token 开启支付宝支付时必传查询条件 */
	@JsonUnwrapped(prefix = "aliAppAuthToken")
	private Condition<String> aliAppAuthTokenCondition;

    /** 支付宝手续费比例 比如千分之六 数据库存0.006查询条件 */
	@JsonUnwrapped(prefix = "aliProportion")
	private Condition<BigDecimal> aliProportionCondition;

    /** 是否开启悦卡支付查询条件 */
	@JsonUnwrapped(prefix = "isYuecardOpen")
	private Condition<Boolean> isYuecardOpenCondition;

    /** 查询条件 */
	@JsonUnwrapped(prefix = "createdTime")
	private Condition<LocalDateTime> createdTimeCondition;

    /** 查询条件 */
	@JsonUnwrapped(prefix = "modifiedTime")
	private Condition<LocalDateTime> modifiedTimeCondition;

    /** [枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH查询条件 */
	@JsonUnwrapped(prefix = "backType")
	private Condition<MerchantPayConfigBackType> backTypeCondition;

    /** 返佣比例查询条件 */
	@JsonUnwrapped(prefix = "backProportion")
	private Condition<BigDecimal> backProportionCondition;

	/**
	 * 构造一个查询条件对象
	 */
	public MerchantPayConfigQuery() {
		super();
	}

	/**
	 * 依据实体对象构造一个查询条件对象
	 * 
	 * @param entity 实体对象
	 */
	public MerchantPayConfigQuery(MerchantPayConfigEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它查询条件对象的信息构造一个查询条件对象
	 * 
	 * @param other 查询条件对象
	 */
	public MerchantPayConfigQuery(MerchantPayConfigQuery other) {
		super(other);
		if(other.idCondition != null) {
			this.idCondition = other.idCondition.copy();
		}
		if(other.isWxpayOpenCondition != null) {
			this.isWxpayOpenCondition = other.isWxpayOpenCondition.copy();
		}
		if(other.subMchIdCondition != null) {
			this.subMchIdCondition = other.subMchIdCondition.copy();
		}
		if(other.wxProportionCondition != null) {
			this.wxProportionCondition = other.wxProportionCondition.copy();
		}
		if(other.isAlipayOpenCondition != null) {
			this.isAlipayOpenCondition = other.isAlipayOpenCondition.copy();
		}
		if(other.aliSgyPidCondition != null) {
			this.aliSgyPidCondition = other.aliSgyPidCondition.copy();
		}
		if(other.aliMerchantPidCondition != null) {
			this.aliMerchantPidCondition = other.aliMerchantPidCondition.copy();
		}
		if(other.aliAppAuthTokenCondition != null) {
			this.aliAppAuthTokenCondition = other.aliAppAuthTokenCondition.copy();
		}
		if(other.aliProportionCondition != null) {
			this.aliProportionCondition = other.aliProportionCondition.copy();
		}
		if(other.isYuecardOpenCondition != null) {
			this.isYuecardOpenCondition = other.isYuecardOpenCondition.copy();
		}
		if(other.createdTimeCondition != null) {
			this.createdTimeCondition = other.createdTimeCondition.copy();
		}
		if(other.modifiedTimeCondition != null) {
			this.modifiedTimeCondition = other.modifiedTimeCondition.copy();
		}
		if(other.backTypeCondition != null) {
			this.backTypeCondition = other.backTypeCondition.copy();
		}
		if(other.backProportionCondition != null) {
			this.backProportionCondition = other.backProportionCondition.copy();
		}
	}

	@Override
	public QueryWrapper<MerchantPayConfigEntity> toQueryWrapper() {
		QueryWrapper<MerchantPayConfigEntity> wrapper = new QueryWrapper<>(this);
		if (idCondition != null) {
			idCondition.toWrapper(wrapper, COL_ID);
		}
		if (isWxpayOpenCondition != null) {
			isWxpayOpenCondition.toWrapper(wrapper, COL_IS_WXPAY_OPEN);
		}
		if (subMchIdCondition != null) {
			subMchIdCondition.toWrapper(wrapper, COL_SUB_MCH_ID);
		}
		if (wxProportionCondition != null) {
			wxProportionCondition.toWrapper(wrapper, COL_WX_PROPORTION);
		}
		if (isAlipayOpenCondition != null) {
			isAlipayOpenCondition.toWrapper(wrapper, COL_IS_ALIPAY_OPEN);
		}
		if (aliSgyPidCondition != null) {
			aliSgyPidCondition.toWrapper(wrapper, COL_ALI_SGY_PID);
		}
		if (aliMerchantPidCondition != null) {
			aliMerchantPidCondition.toWrapper(wrapper, COL_ALI_MERCHANT_PID);
		}
		if (aliAppAuthTokenCondition != null) {
			aliAppAuthTokenCondition.toWrapper(wrapper, COL_ALI_APP_AUTH_TOKEN);
		}
		if (aliProportionCondition != null) {
			aliProportionCondition.toWrapper(wrapper, COL_ALI_PROPORTION);
		}
		if (isYuecardOpenCondition != null) {
			isYuecardOpenCondition.toWrapper(wrapper, COL_IS_YUECARD_OPEN);
		}
		if (createdTimeCondition != null) {
			createdTimeCondition.toWrapper(wrapper, COL_CREATED_TIME);
		}
		if (modifiedTimeCondition != null) {
			modifiedTimeCondition.toWrapper(wrapper, COL_MODIFIED_TIME);
		}
		if (backTypeCondition != null) {
			backTypeCondition.toWrapper(wrapper, COL_BACK_TYPE);
		}
		if (backProportionCondition != null) {
			backProportionCondition.toWrapper(wrapper, COL_BACK_PROPORTION);
		}
		return wrapper;
	}

	/**
	 * 构造并返回商铺id查询条件
	 * 
	 * @return idCondition 商铺id查询条件
	 */
	public Condition<String> id() {
		this.idCondition = new Condition<>();
		return this.idCondition;
	}
	
	/**
	 * 获取商铺id查询条件
	 * 
	 * @return idCondition 商铺id查询条件
	 */
	public Condition<String> getIdCondition() {
		return idCondition;
	}

	/**
	 * 设置商铺id查询条件
	 * 
	 * @param idCondition 商铺id查询条件
	 */
	public void setIdCondition(Condition<String> idCondition) {
		this.idCondition = idCondition;
	}

	/**
	 * 构造并返回是否开启微信聚合支付 0否 1是查询条件
	 * 
	 * @return isWxpayOpenCondition 是否开启微信聚合支付 0否 1是查询条件
	 */
	public Condition<Boolean> isWxpayOpen() {
		this.isWxpayOpenCondition = new Condition<>();
		return this.isWxpayOpenCondition;
	}
	
	/**
	 * 获取是否开启微信聚合支付 0否 1是查询条件
	 * 
	 * @return isWxpayOpenCondition 是否开启微信聚合支付 0否 1是查询条件
	 */
	public Condition<Boolean> getIsWxpayOpenCondition() {
		return isWxpayOpenCondition;
	}

	/**
	 * 设置是否开启微信聚合支付 0否 1是查询条件
	 * 
	 * @param isWxpayOpenCondition 是否开启微信聚合支付 0否 1是查询条件
	 */
	public void setIsWxpayOpenCondition(Condition<Boolean> isWxpayOpenCondition) {
		this.isWxpayOpenCondition = isWxpayOpenCondition;
	}

	/**
	 * 构造并返回微信子商户号查询条件
	 * 
	 * @return subMchIdCondition 微信子商户号查询条件
	 */
	public Condition<String> subMchId() {
		this.subMchIdCondition = new Condition<>();
		return this.subMchIdCondition;
	}
	
	/**
	 * 获取微信子商户号查询条件
	 * 
	 * @return subMchIdCondition 微信子商户号查询条件
	 */
	public Condition<String> getSubMchIdCondition() {
		return subMchIdCondition;
	}

	/**
	 * 设置微信子商户号查询条件
	 * 
	 * @param subMchIdCondition 微信子商户号查询条件
	 */
	public void setSubMchIdCondition(Condition<String> subMchIdCondition) {
		this.subMchIdCondition = subMchIdCondition;
	}

	/**
	 * 构造并返回微信支付手续费比例 比如千6 填0.006查询条件
	 * 
	 * @return wxProportionCondition 微信支付手续费比例 比如千6 填0.006查询条件
	 */
	public Condition<BigDecimal> wxProportion() {
		this.wxProportionCondition = new Condition<>();
		return this.wxProportionCondition;
	}
	
	/**
	 * 获取微信支付手续费比例 比如千6 填0.006查询条件
	 * 
	 * @return wxProportionCondition 微信支付手续费比例 比如千6 填0.006查询条件
	 */
	public Condition<BigDecimal> getWxProportionCondition() {
		return wxProportionCondition;
	}

	/**
	 * 设置微信支付手续费比例 比如千6 填0.006查询条件
	 * 
	 * @param wxProportionCondition 微信支付手续费比例 比如千6 填0.006查询条件
	 */
	public void setWxProportionCondition(Condition<BigDecimal> wxProportionCondition) {
		this.wxProportionCondition = wxProportionCondition;
	}

	/**
	 * 构造并返回是否开启支付宝聚合支付查询条件
	 * 
	 * @return isAlipayOpenCondition 是否开启支付宝聚合支付查询条件
	 */
	public Condition<Boolean> isAlipayOpen() {
		this.isAlipayOpenCondition = new Condition<>();
		return this.isAlipayOpenCondition;
	}
	
	/**
	 * 获取是否开启支付宝聚合支付查询条件
	 * 
	 * @return isAlipayOpenCondition 是否开启支付宝聚合支付查询条件
	 */
	public Condition<Boolean> getIsAlipayOpenCondition() {
		return isAlipayOpenCondition;
	}

	/**
	 * 设置是否开启支付宝聚合支付查询条件
	 * 
	 * @param isAlipayOpenCondition 是否开启支付宝聚合支付查询条件
	 */
	public void setIsAlipayOpenCondition(Condition<Boolean> isAlipayOpenCondition) {
		this.isAlipayOpenCondition = isAlipayOpenCondition;
	}

	/**
	 * 构造并返回2019112769491079查询条件
	 * 
	 * @return aliSgyPidCondition 2019112769491079查询条件
	 */
	public Condition<String> aliSgyPid() {
		this.aliSgyPidCondition = new Condition<>();
		return this.aliSgyPidCondition;
	}
	
	/**
	 * 获取2019112769491079查询条件
	 * 
	 * @return aliSgyPidCondition 2019112769491079查询条件
	 */
	public Condition<String> getAliSgyPidCondition() {
		return aliSgyPidCondition;
	}

	/**
	 * 设置2019112769491079查询条件
	 * 
	 * @param aliSgyPidCondition 2019112769491079查询条件
	 */
	public void setAliSgyPidCondition(Condition<String> aliSgyPidCondition) {
		this.aliSgyPidCondition = aliSgyPidCondition;
	}

	/**
	 * 构造并返回支付宝商户pid  开启支付宝支付时必传查询条件
	 * 
	 * @return aliMerchantPidCondition 支付宝商户pid  开启支付宝支付时必传查询条件
	 */
	public Condition<String> aliMerchantPid() {
		this.aliMerchantPidCondition = new Condition<>();
		return this.aliMerchantPidCondition;
	}
	
	/**
	 * 获取支付宝商户pid  开启支付宝支付时必传查询条件
	 * 
	 * @return aliMerchantPidCondition 支付宝商户pid  开启支付宝支付时必传查询条件
	 */
	public Condition<String> getAliMerchantPidCondition() {
		return aliMerchantPidCondition;
	}

	/**
	 * 设置支付宝商户pid  开启支付宝支付时必传查询条件
	 * 
	 * @param aliMerchantPidCondition 支付宝商户pid  开启支付宝支付时必传查询条件
	 */
	public void setAliMerchantPidCondition(Condition<String> aliMerchantPidCondition) {
		this.aliMerchantPidCondition = aliMerchantPidCondition;
	}

	/**
	 * 构造并返回商户授权token 开启支付宝支付时必传查询条件
	 * 
	 * @return aliAppAuthTokenCondition 商户授权token 开启支付宝支付时必传查询条件
	 */
	public Condition<String> aliAppAuthToken() {
		this.aliAppAuthTokenCondition = new Condition<>();
		return this.aliAppAuthTokenCondition;
	}
	
	/**
	 * 获取商户授权token 开启支付宝支付时必传查询条件
	 * 
	 * @return aliAppAuthTokenCondition 商户授权token 开启支付宝支付时必传查询条件
	 */
	public Condition<String> getAliAppAuthTokenCondition() {
		return aliAppAuthTokenCondition;
	}

	/**
	 * 设置商户授权token 开启支付宝支付时必传查询条件
	 * 
	 * @param aliAppAuthTokenCondition 商户授权token 开启支付宝支付时必传查询条件
	 */
	public void setAliAppAuthTokenCondition(Condition<String> aliAppAuthTokenCondition) {
		this.aliAppAuthTokenCondition = aliAppAuthTokenCondition;
	}

	/**
	 * 构造并返回支付宝手续费比例 比如千分之六 数据库存0.006查询条件
	 * 
	 * @return aliProportionCondition 支付宝手续费比例 比如千分之六 数据库存0.006查询条件
	 */
	public Condition<BigDecimal> aliProportion() {
		this.aliProportionCondition = new Condition<>();
		return this.aliProportionCondition;
	}
	
	/**
	 * 获取支付宝手续费比例 比如千分之六 数据库存0.006查询条件
	 * 
	 * @return aliProportionCondition 支付宝手续费比例 比如千分之六 数据库存0.006查询条件
	 */
	public Condition<BigDecimal> getAliProportionCondition() {
		return aliProportionCondition;
	}

	/**
	 * 设置支付宝手续费比例 比如千分之六 数据库存0.006查询条件
	 * 
	 * @param aliProportionCondition 支付宝手续费比例 比如千分之六 数据库存0.006查询条件
	 */
	public void setAliProportionCondition(Condition<BigDecimal> aliProportionCondition) {
		this.aliProportionCondition = aliProportionCondition;
	}

	/**
	 * 构造并返回是否开启悦卡支付查询条件
	 * 
	 * @return isYuecardOpenCondition 是否开启悦卡支付查询条件
	 */
	public Condition<Boolean> isYuecardOpen() {
		this.isYuecardOpenCondition = new Condition<>();
		return this.isYuecardOpenCondition;
	}
	
	/**
	 * 获取是否开启悦卡支付查询条件
	 * 
	 * @return isYuecardOpenCondition 是否开启悦卡支付查询条件
	 */
	public Condition<Boolean> getIsYuecardOpenCondition() {
		return isYuecardOpenCondition;
	}

	/**
	 * 设置是否开启悦卡支付查询条件
	 * 
	 * @param isYuecardOpenCondition 是否开启悦卡支付查询条件
	 */
	public void setIsYuecardOpenCondition(Condition<Boolean> isYuecardOpenCondition) {
		this.isYuecardOpenCondition = isYuecardOpenCondition;
	}

	/**
	 * 构造并返回查询条件
	 * 
	 * @return createdTimeCondition 查询条件
	 */
	public Condition<LocalDateTime> createdTime() {
		this.createdTimeCondition = new Condition<>();
		return this.createdTimeCondition;
	}
	
	/**
	 * 获取查询条件
	 * 
	 * @return createdTimeCondition 查询条件
	 */
	public Condition<LocalDateTime> getCreatedTimeCondition() {
		return createdTimeCondition;
	}

	/**
	 * 设置查询条件
	 * 
	 * @param createdTimeCondition 查询条件
	 */
	public void setCreatedTimeCondition(Condition<LocalDateTime> createdTimeCondition) {
		this.createdTimeCondition = createdTimeCondition;
	}

	/**
	 * 构造并返回查询条件
	 * 
	 * @return modifiedTimeCondition 查询条件
	 */
	public Condition<LocalDateTime> modifiedTime() {
		this.modifiedTimeCondition = new Condition<>();
		return this.modifiedTimeCondition;
	}
	
	/**
	 * 获取查询条件
	 * 
	 * @return modifiedTimeCondition 查询条件
	 */
	public Condition<LocalDateTime> getModifiedTimeCondition() {
		return modifiedTimeCondition;
	}

	/**
	 * 设置查询条件
	 * 
	 * @param modifiedTimeCondition 查询条件
	 */
	public void setModifiedTimeCondition(Condition<LocalDateTime> modifiedTimeCondition) {
		this.modifiedTimeCondition = modifiedTimeCondition;
	}

	/**
	 * 构造并返回[枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH查询条件
	 * 
	 * @return backTypeCondition [枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH查询条件
	 */
	public Condition<MerchantPayConfigBackType> backType() {
		this.backTypeCondition = new Condition<>();
		return this.backTypeCondition;
	}
	
	/**
	 * 获取[枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH查询条件
	 * 
	 * @return backTypeCondition [枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH查询条件
	 */
	public Condition<MerchantPayConfigBackType> getBackTypeCondition() {
		return backTypeCondition;
	}

	/**
	 * 设置[枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH查询条件
	 * 
	 * @param backTypeCondition [枚举]返现方式：0-周-WEEK、1-半月-HALFMONTH、2-月-MONTH查询条件
	 */
	public void setBackTypeCondition(Condition<MerchantPayConfigBackType> backTypeCondition) {
		this.backTypeCondition = backTypeCondition;
	}

	/**
	 * 构造并返回返佣比例查询条件
	 * 
	 * @return backProportionCondition 返佣比例查询条件
	 */
	public Condition<BigDecimal> backProportion() {
		this.backProportionCondition = new Condition<>();
		return this.backProportionCondition;
	}
	
	/**
	 * 获取返佣比例查询条件
	 * 
	 * @return backProportionCondition 返佣比例查询条件
	 */
	public Condition<BigDecimal> getBackProportionCondition() {
		return backProportionCondition;
	}

	/**
	 * 设置返佣比例查询条件
	 * 
	 * @param backProportionCondition 返佣比例查询条件
	 */
	public void setBackProportionCondition(Condition<BigDecimal> backProportionCondition) {
		this.backProportionCondition = backProportionCondition;
	}

}
